// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'


Shader  "Hidden/HeightDepthOfField" {

	Properties
	 {
 _MainTex ("Base", 2D) = "" {}
 _TapLowBackground ("TapLowBackground", 2D) = "" {}
 _TapLowForeground ("TapLowForeground", 2D) = "" {}
 _TapMedium ("TapMedium", 2D) = "" {}
}

	

	SubShader
     {
  ZTest Always
  ZWrite Off
  Cull Off
  Fog { Mode Off }

    LOD 100
	Pass
	{
	
	

	CGPROGRAM
	#pragma vertex vert
	#pragma fragment frag
	#include "UnityCG.cginc"
    //#define Fixed3(value)  fixed3(value, value,value)
	//#define Fixed4(value)  fixed4(value, value,value,value)

	struct VertexInput {
    fixed4 vertex : POSITION;
	fixed2 xlv_TEXCOORD0 : TEXCOORD0;
    //fixed2 xlv_TEXCOORD1 : TEXCOORD1;
    //fixed3 xlv_TEXCOORD2 : TEXCOORD2;
    //fixed3 xlv_TEXCOORD3 : TEXCOORD3;
    //fixed4 tangent : TANGENT;
    fixed3 normal : NORMAL;
    //fixed4 xlv_COLOR : COLOR;
	//VertexInput
	};


	struct VertexOutput {
	fixed4 pos : SV_POSITION;
    UNITY_FOG_COORDS(1)
    //fixed4 xlv_COLOR : COLOR;
	fixed2 xlv_TEXCOORD0 : TEXCOORD0;
    fixed3 xlv_TEXCOORD1 : TEXCOORD1;
    //fixed3 xlv_TEXCOORD2 : TEXCOORD2;
    //fixed3 xlv_TEXCOORD3 : TEXCOORD3;
    //fixed3 xlv_TEXCOORD4 : TEXCOORD4;
	//VertexOutput
	};

 
 half4x4 _FrustumCornersWS;

 sampler2D _MainTex;
 sampler2D _CameraDepthTexture;
 half4 _ObjectFocusParameter;
 half4 _CameraWS;



	VertexOutput vert (VertexInput v)
	{
	VertexOutput o;
	//o.pos = UnityObjectToClipPos (v.vertex);
	//o.xlv_TEXCOORD0 = TRANSFORM_TEX(v.xlv_TEXCOORD0, _MainTex);
	
  float4 tmpvar_1;
  tmpvar_1 = v.vertex;
  half2 tmpvar_2;
  tmpvar_2 = v.xlv_TEXCOORD0;
  float4 tmpvar_3;
  tmpvar_3.xyw = tmpvar_1.xyw;
  half3 tmpVertex_4;
  float2 tmpvar_5;
  float3 tmpvar_6;
  tmpvar_6 = tmpvar_1.xyz;
  tmpVertex_4 = tmpvar_6;
  tmpvar_3.z = 0.1;
  tmpvar_5 = tmpvar_2;
  int i_7;
  i_7 = int(tmpVertex_4.z);
  half4 v_8;
  v_8.x = _FrustumCornersWS[0][i_7];
  v_8.y = _FrustumCornersWS[1][i_7];
  v_8.z = _FrustumCornersWS[2][i_7];
  v_8.w = _FrustumCornersWS[3][i_7];
  float3 tmpvar_9;
  tmpvar_9 = v_8.xyz;
  o.pos = UnityObjectToClipPos( tmpvar_3);
  o.xlv_TEXCOORD0 = tmpvar_5;
  o.xlv_TEXCOORD1 = tmpvar_9;

    UNITY_TRANSFER_FOG(o,o.vertex);
   
	return o;
	}


	fixed4 frag(VertexOutput i) : SV_Target
    {
    //fixed4 tmpvar_2 = tex2D(_MainTex, i.uv);
	
  float dpth_1;
  half4 color_2;
  fixed4 tmpvar_3;
  tmpvar_3 = tex2D (_MainTex, i.xlv_TEXCOORD0);
	UNITY_APPLY_FOG(i.fogCoord, tmpvar_3);
  color_2.xyz = tmpvar_3.xyz;
  fixed tmpvar_4;
  tmpvar_4 = tex2D (_CameraDepthTexture, i.xlv_TEXCOORD0).x;
  dpth_1 = tmpvar_4;
  float tmpvar_5;
  tmpvar_5 = (1.0/(((_ZBufferParams.x * dpth_1) + _ZBufferParams.y)));
  dpth_1 = tmpvar_5;
  half tmpvar_6;
  float tmpvar_7;
  tmpvar_7 = clamp ((_ObjectFocusParameter.y * (
    (-(_ObjectFocusParameter.x) - _ObjectFocusParameter.w)
   + 
    (_CameraWS.xyz + (tmpvar_5 * i.xlv_TEXCOORD1))
  .y)), 0.0, 1.0);
  tmpvar_6 = tmpvar_7;
  color_2.w = tmpvar_6;
  return color_2;

	}
	ENDCG
	}
  }
Fallback "Diffuse"
}

